/*LICENSE_BEGIN
 * ******************************************************************
 * Copyright 2006 by the Dainamite Robocup-Team at the
 * DAI-Labor, TU-Berlin (www.dai-labor.de)
 * 
 * Members of Dainamite are:
 * Holger Endert
 * Robert Wetzker
 * Thomas Karbe
 * Axel Heßler
 * Philippe Bütter
 * Felix Brossmann
 * 
 * Licensed under the GNU GPL (General Public License) Free Software 
 * License, Version 2. You may use this file only in compliance with 
 * the License. You may obtain a copy of the License at:
 * 
 * http://www.fsf.org/licensing/licenses/gpl.txt
 * ******************************************************************
LICENSE_END*/
package robocup.component.infotypes;


/**
 * This class represents an info which is received initially from the
 * server. The contained information is the player-specific configuration
 * of the server.
 */
public class PlayerParamInfo extends Info {

	/**
	 * The value by which the dash-power rate might be higher 
	 * than usual (default 0.0).
	 */
	public double DASH_POWER_RATE_DELTA_MAX = 0.0;

	/**
	 * The value by which the dash-power rate might be lower than 
	 * usual (default 0.0).
	 */
	public double DASH_POWER_RATE_DELTA_MIN = 0.0;

	/**
	 * The maximum dash-power rate (default 0.008).
	 */
	public double DASH_POWER_RATE_MAX = 0.008;

	/**
	 * The minimum dash-power rate (default 0.006).
	 */
	public double DASH_POWER_RATE_MIN = 0.006;

	/**
	 * The maximum value for increased effort (default -0.002).
	 */
	public double EFFORT_MAX_DELTA_FACTOR = -0.002;

	/**
	 * The minimum value for increased effort (default -0.002).
	 */
	public double EFFORT_MIN_DELTA_FACTOR = -0.002;

	/**
	 * The maximum extra stamina (default 100.0)
	 */
	public double EXTRA_STAMINA_DELTA_MAX = 100.0;

	/**
	 * The minimum extra stamina (default 0)
	 */
	public double EXTRA_STAMINA_DELTA_MIN = 0.0;

	/**
	 * The inertia moment deviation factor (default 25.0)
	 */
	public double INERTIA_MOMENT_DELTA_FACTOR = 25.0;

	/**
	 * The random factor for kicking (default 0.5) 
	 */
	public double KICK_RAND_DELTA_FACTOR = 0.5;

	/**
	 * The maximum deviation for the kickable margin (default 0.2).
	 */
	public double KICKABLE_MARGIN_DELTA_MAX = 0.2;

	/**
	 * The minimum deviation for the kickable margin (default 0.2).
	 */
	public double KICKABLE_MARGIN_DELTA_MIN = 0.0;

	/**
	 * The maximum kickable margin (default 0.9)
	 */
	public double KICKABLE_MARGIN_MAX = 0.9;

	/**
	 * The minimum kickable margin (default 0.7)
	 */
	public double KICKABLE_MARGIN_MIN = 0.7;

	/**
	 * (default 0.002)
	 */
	public double NEW_DASH_POWER_RATE_DELTA_MAX = 0.002;

	/**
	 * (default 0.0)
	 */
	public double NEW_DASH_POWER_RATE_DELTA_MIN = 0.0;

	/**
	 * <i>unknwon</i>
	 */
	public double NEW_STAMINA_INC_MAX_DELTA_FACTOR = -10000.0;

	/**
	 * The player decay maximum deviation (default 0.2)
	 */
	public double PLAYER_DECAY_DELTA_MAX = 0.2;

	/**
	 * The player decay minimum deviation (default 0)
	 */
	public double PLAYER_DECAY_DELTA_MIN = 0.0;

	/**
	 * The player-size deviation (default <i>unknown</i>)
	 */
	public double PLAYER_SIZE_DELTA_FACTOR = -100.0;

	/**
	 * The player speed maximum deviation (default 0)
	 */
	public double PLAYER_SPEED_MAX_DELTA_MAX = 0.0;

	/**
	 * The player speed minimum deviation (default 0)
	 */
	public double PLAYER_SPEED_MAX_DELTA_MIN = 0.0;

	/**
	 * The amount of heterogeneous player types (default 7)
	 */
	public int PLAYER_TYPES = 7;

	/**
	 * The amount of players, that can be assigned to the same player-type 
	 * (default 3)
	 */
	public int PT_MAX = 3;

	/**
	 * Random ssed for heterogeneous player type determination 
	 * (default <i>unknown</i>).
	 */
	public double RANDOM_SEED = -1;

	/**
	 * The deviation for stamina increasement (default 0)
	 */
	public double STAMINA_INC_MAX_DELTA_FACTOR = 0.0;

	/**
	 * The maximum allowed player substitutions.
	 */
	public int SUBS_MAX = 3;

	/**
	 * Constructor, simply specifies the type. All data is set via 
	 * the public fields of the object.
	 */
	public PlayerParamInfo() {
		super(-1);
		this.infoType = Info.TYPE_PPARAM;
	}

}
